const express = require('express');
const bodyParser = require('body-parser');
const app = express();

// 内置中间
app.use('/static',express.static('public'));
// 第三方中间件
app.use(bodyParser.urlencoded({extended:true}));

// 中间件：本质是一个函数 该函数中有三个参数request response  next
// request:req 请求对象
// response：res 响应对象
// next函数 调用下一个中间件

/* 
中间件有四类
1.应用级中间件（自定义中间件）
2.第三方中间件 
3.内置中间件
4.路由器中间件

使用中间件 app.use()
*/
// 自定义中间件
// 全局中间
/* app.use('/',(req,res,next)=>{
    // 必须携带 money=1 标识，才能见到司国义
    const query = req.query;
    console.log(query);
    if(query.money == '1'){
        query.money='干掉武烁'
        next();
    }else{
        res.send('没有1元请回')
    }

}) */


// 局部中间件
function middleware(req,res,next){
     // 必须携带 money=1 标识，才能见到司国义
     const query = req.query;
     console.log(query);
     if(query.money == '1'){
         query.money='干掉武烁'
        //  执行下一个路由
         next();
     }else{
         res.send('没有1元请回')
     }
}


// 武烁 你要访问司国义，给我一块钱
// 局部中间件 在路由中间可以写无数个中间件
app.get('/siguoyi',middleware,(req,res)=>{
    console.log(req.query);
    res.send('司国义');
})

// 

app.get('/wenkuo',(req,res)=>{
    res.setHeader('Access-Control-Allow-Origin','*')
    res.send('文阔和武烁谁能赢');
})











// post请求
app.post('/register',(req,res)=>{
    // 
    console.log(req.body);
    res.send('注册成功！！');
})

app.post('/login',(req,res)=>{
    console.log(req.body);
    res.send('登录成功！！')
})
app.get('/shangpin/detail',(req,res)=>{
    res.send('二级路由')
})
















app.listen(8080,err=>{
    if(!err) console.log('serve');
    else console.log(err);
})

